package com.demo.webapp.ui.access;

import com.demo.webapp.ui.ComponentBase;
import com.demo.webapp.ui.access.PermissionsAdapter;

/**
 * 展示层权限接口
 * 使用许可适配器对组件进行权限判断
 * @author ryuu.kk
 *
 * @param <T> 权限访问模型
 */
public interface DisplayerAuthority<T> {

    /** 
     * 返回PermissionsAdapter对象
     * @return PermissionsAdapter 对象
     */
    PermissionsAdapter<T> getPermissionsAdapter();
    
    /**
     * 设置PermissionsAdapter对象
     * @param permissionsAdapter 对象
     */
    void setPermissionsAdapter(PermissionsAdapter<T> permissionsAdapter);
    
    /**
     * 是否有权限访问 
     * @param model 组件模型
     * @return 是否授权
     */
    boolean hasPermission(ComponentBase model);
}
